home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / OSUtils.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  17.3 KB  |  830 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OSUtils.a
  3. ;
  4. ;    Contains:    OS Utilities Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  21. __OSUTILS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  30.     include 'MixedMode.a'
  31.     ENDIF
  32.  
  33.     IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN
  34.     include 'Memory.a'
  35.     ENDIF
  36.  
  37. useFree                            EQU        0
  38. useATalk                        EQU        1
  39. useAsync                        EQU        2
  40. useExtClk                        EQU        3                    ;Externally clocked
  41. useMIDI                            EQU        4
  42. ; Environs Equates 
  43. curSysEnvVers                    EQU        2                    ;Updated to equal latest SysEnvirons version
  44. ; Machine Types 
  45. envMac                            EQU        -1
  46. envXL                            EQU        -2
  47. envMachUnknown                    EQU        0
  48. env512KE                        EQU        1
  49. envMacPlus                        EQU        2
  50. envSE                            EQU        3
  51. envMacII                        EQU        4
  52. envMacIIx                        EQU        5
  53. envMacIIcx                        EQU        6
  54. envSE30                            EQU        7
  55. envPortable                        EQU        8
  56. envMacIIci                        EQU        9
  57. envMacIIfx                        EQU        11
  58. ; CPU types 
  59. envCPUUnknown                    EQU        0
  60.  
  61. env68000                        EQU        1
  62. env68010                        EQU        2
  63. env68020                        EQU        3
  64. env68030                        EQU        4
  65. env68040                        EQU        5
  66. ; Keyboard types 
  67. envUnknownKbd                    EQU        0
  68. envMacKbd                        EQU        1
  69. envMacAndPad                    EQU        2
  70. envMacPlusKbd                    EQU        3
  71. envAExtendKbd                    EQU        4
  72. envStandADBKbd                    EQU        5
  73. envPrtblADBKbd                    EQU        6
  74. envPrtblISOKbd                    EQU        7
  75. envStdISOADBKbd                    EQU        8
  76. envExtISOADBKbd                    EQU        9
  77. false32b                        EQU        0                    ;24 bit addressing error
  78. true32b                            EQU        1                    ;32 bit addressing error
  79. ; result types for RelString Call 
  80. sortsBefore                        EQU        -1                    ;first string < second string
  81. sortsEqual                        EQU        0                    ;first string = second string
  82. sortsAfter                        EQU        1                    ;first string > second string
  83.  
  84. ; Toggle results 
  85. toggleUndefined                    EQU        0
  86. toggleOK                        EQU        1
  87. toggleBadField                    EQU        2
  88. toggleBadDelta                    EQU        3
  89. toggleBadChar                    EQU        4
  90. toggleUnknown                    EQU        5
  91. toggleBadNum                    EQU        6
  92. toggleOutOfRange                EQU        7                    ;synonym for toggleErr3
  93. toggleErr3                        EQU        7
  94. toggleErr4                        EQU        8
  95. toggleErr5                        EQU        9
  96. ; Date equates 
  97. smallDateBit                    EQU        31                    ;Restrict valid date/time to range of Time global
  98. togChar12HourBit                EQU        30                    ;If toggling hour by char, accept hours 1..12 only
  99. togCharZCycleBit                EQU        29                    ;Modifier for togChar12HourBit: accept hours 0..11 only
  100. togDelta12HourBit                EQU        28                    ;If toggling hour up/down, restrict to 12-hour range (am/pm)
  101. genCdevRangeBit                    EQU        27                    ;Restrict date/time to range used by genl CDEV
  102. validDateFields                    EQU        -1
  103. maxDateField                    EQU        10
  104. eraMask                            EQU        $0001
  105. yearMask                        EQU        $0002
  106. monthMask                        EQU        $0004
  107. dayMask                            EQU        $0008
  108. hourMask                        EQU        $0010
  109. minuteMask                        EQU        $0020
  110. secondMask                        EQU        $0040
  111. dayOfWeekMask                    EQU        $0080
  112. dayOfYearMask                    EQU        $0100
  113. weekOfYearMask                    EQU        $0200
  114. pmMask                            EQU        $0400
  115. dateStdMask                        EQU        $007F                ;default for ValidDate flags and ToggleDate TogglePB.togFlags
  116.  
  117. eraField                        EQU        0
  118. yearField                        EQU        1
  119. monthField                        EQU        2
  120. dayField                        EQU        3
  121. hourField                        EQU        4
  122. minuteField                        EQU        5
  123. secondField                        EQU        6
  124. dayOfWeekField                    EQU        7
  125. dayOfYearField                    EQU        8
  126. weekOfYearField                    EQU        9
  127. pmField                            EQU        10
  128. res1Field                        EQU        11
  129. res2Field                        EQU        12
  130. res3Field                        EQU        13
  131.  
  132. ; typedef SignedByte         LongDateField
  133.  
  134. dummyType                        EQU        0
  135. vType                            EQU        1
  136. ioQType                            EQU        2
  137. drvQType                        EQU        3
  138. evType                            EQU        4
  139. fsQType                            EQU        5
  140. sIQType                            EQU        6
  141. dtQType                            EQU        7
  142. nmType                            EQU        8
  143.  
  144. ; typedef SignedByte         QTypes
  145.  
  146. OSTrap                            EQU        0
  147. ToolTrap                        EQU        1
  148.  
  149. ; typedef SignedByte         TrapType
  150. SysParmType             RECORD    0
  151. valid                     ds.b   1        ; offset: $0 (0)
  152. aTalkA                     ds.b   1        ; offset: $1 (1)
  153. aTalkB                     ds.b   1        ; offset: $2 (2)
  154. config                     ds.b   1        ; offset: $3 (3)
  155. portA                     ds.w   1        ; offset: $4 (4)
  156. portB                     ds.w   1        ; offset: $6 (6)
  157. alarm                     ds.l   1        ; offset: $8 (8)
  158. font                     ds.w   1        ; offset: $C (12)
  159. kbdPrint                 ds.w   1        ; offset: $E (14)
  160. volClik                     ds.w   1        ; offset: $10 (16)
  161. misc                     ds.w   1        ; offset: $12 (18)
  162. sizeof                     EQU *            ; size:   $14 (20)
  163.                         ENDR
  164.  
  165. ; typedef struct SysParmType  SysParmType, *SysPPtr
  166. ; typedef struct QElem         QElem
  167. ; typedef QElem             *QElemPtr
  168. QElem                     RECORD    0
  169. qLink                     ds.l   1        ; offset: $0 (0)
  170. qType                     ds.w   1        ; offset: $4 (4)
  171. qData                     ds.w   1        ; offset: $6 (6)
  172. sizeof                     EQU *            ; size:   $8 (8)
  173.                         ENDR
  174.  
  175. ; typedef struct QHdr         QHdr
  176. ; typedef QHdr                 *QHdrPtr
  177. QHdr                     RECORD    0
  178. qFlags                     ds.w   1        ; offset: $0 (0)
  179. qHead                     ds.l   1        ; offset: $2 (2)
  180. qTail                     ds.l   1        ; offset: $6 (6)
  181. sizeof                     EQU *            ; size:   $A (10)
  182.                         ENDR
  183.  
  184. DeferredTask             RECORD    0
  185. qLink                     ds.l   1        ; offset: $0 (0)
  186. qType                     ds.w   1        ; offset: $4 (4)
  187. dtFlags                     ds.w   1        ; offset: $6 (6)
  188. dtAddr                     ds.l   1        ; offset: $8 (8)
  189. dtParam                     ds.l   1        ; offset: $C (12)
  190. dtReserved                 ds.l   1        ; offset: $10 (16)
  191. sizeof                     EQU *            ; size:   $14 (20)
  192.                         ENDR
  193.  
  194. ; typedef struct DeferredTask  DeferredTask, *DeferredTaskPtr
  195. SysEnvRec                 RECORD    0
  196. environsVersion             ds.w   1        ; offset: $0 (0)
  197. machineType                 ds.w   1        ; offset: $2 (2)
  198. systemVersion             ds.w   1        ; offset: $4 (4)
  199. processor                 ds.w   1        ; offset: $6 (6)
  200. hasFPU                     ds.b   1        ; offset: $8 (8)
  201. hasColorQD                 ds.b   1        ; offset: $9 (9)
  202. keyBoardType             ds.w   1        ; offset: $A (10)
  203. atDrvrVersNum             ds.w   1        ; offset: $C (12)
  204. sysVRefNum                 ds.w   1        ; offset: $E (14)
  205. sizeof                     EQU *            ; size:   $10 (16)
  206.                         ENDR
  207.  
  208. ; typedef struct SysEnvRec     SysEnvRec
  209. MachineLocation         RECORD    0
  210. latitude                 ds.l   1        ; offset: $0 (0)
  211. longitude                 ds.l   1        ; offset: $4 (4)
  212. dlsDelta                 ds.b   1        ; offset: $8 (8)        ;signed byte; daylight savings delta
  213.                          ORG 8
  214. gmtDelta                 ds.l   1        ; offset: $8 (8)        ;must mask - see documentation
  215.                          ORG 12
  216. sizeof                     EQU *            ; size:   $C (12)
  217.                         ENDR
  218.  
  219. ; typedef struct MachineLocation  MachineLocation
  220. DateTimeRec             RECORD    0
  221. year                     ds.w   1        ; offset: $0 (0)
  222. month                     ds.w   1        ; offset: $2 (2)
  223. day                         ds.w   1        ; offset: $4 (4)
  224. hour                     ds.w   1        ; offset: $6 (6)
  225. minute                     ds.w   1        ; offset: $8 (8)
  226. second                     ds.w   1        ; offset: $A (10)
  227. dayOfWeek                 ds.w   1        ; offset: $C (12)
  228. sizeof                     EQU *            ; size:   $E (14)
  229.                         ENDR
  230.  
  231. ; typedef struct DateTimeRec  DateTimeRec
  232. ; typedef wide                 LongDateTime
  233. LongDateCvt             RECORD    0
  234. c                         ds     wide    ; offset: $0 (0)
  235.                          ORG 0
  236. lHigh                     ds.l   1        ; offset: $0 (0)
  237. lLow                     ds.l   1        ; offset: $4 (4)
  238.                          ORG 8
  239. sizeof                     EQU *            ; size:   $8 (8)
  240.                         ENDR
  241.  
  242. ; typedef union LongDateCvt  LongDateCvt
  243. LongDateRec             RECORD    0
  244. era                         ds.w   1        ; offset: $0 (0)
  245. year                     ds.w   1        ; offset: $2 (2)
  246. month                     ds.w   1        ; offset: $4 (4)
  247. day                         ds.w   1        ; offset: $6 (6)
  248. hour                     ds.w   1        ; offset: $8 (8)
  249. minute                     ds.w   1        ; offset: $A (10)
  250. second                     ds.w   1        ; offset: $C (12)
  251. dayOfWeek                 ds.w   1        ; offset: $E (14)
  252. dayOfYear                 ds.w   1        ; offset: $10 (16)
  253. weekOfYear                 ds.w   1        ; offset: $12 (18)
  254. pm                         ds.w   1        ; offset: $14 (20)
  255. res1                     ds.w   1        ; offset: $16 (22)
  256. res2                     ds.w   1        ; offset: $18 (24)
  257. res3                     ds.w   1        ; offset: $1A (26)
  258.                          ORG 0
  259. list                     ds.w   14        ; offset: $0 (0)        ;Index by LongDateField!
  260.                          ORG 0
  261. eraAlt                     ds.w   1        ; offset: $0 (0)
  262. oldDate                     ds     DateTimeRec ; offset: $2 (2)
  263.                          ORG 28
  264. sizeof                     EQU *            ; size:   $1C (28)
  265.                         ENDR
  266.  
  267. ; typedef union LongDateRec  LongDateRec
  268. ; typedef SInt8             DateDelta
  269. TogglePB                 RECORD    0
  270. togFlags                 ds.l   1        ; offset: $0 (0)        ;caller normally sets low word to dateStdMask=$7F
  271. amChars                     ds.l   1        ; offset: $4 (4)        ;from 'itl0', but uppercased
  272. pmChars                     ds.l   1        ; offset: $8 (8)        ;from 'itl0', but uppercased
  273. reserved                 ds.l   4        ; offset: $C (12)
  274. sizeof                     EQU *            ; size:   $1C (28)
  275.                         ENDR
  276.  
  277. ; typedef struct TogglePB     TogglePB
  278. ; typedef short             ToggleResults
  279. ;
  280. ; pascal void LongDateToSeconds(const LongDateRec *lDate, LongDateTime *lSecs)
  281. ;
  282.     IF ¬ GENERATINGCFM THEN
  283.         Macro
  284.         _LongDateToSeconds
  285.             dc.w     $2F3C
  286.             dc.w     $8008
  287.             dc.w     $FFF2
  288.             dc.w     $A8B5
  289.         EndM
  290.     ELSE
  291.         IMPORT_CFM_FUNCTION    LongDateToSeconds
  292.     ENDIF
  293.  
  294. ;
  295. ; pascal void LongSecondsToDate(LongDateTime *lSecs, LongDateRec *lDate)
  296. ;
  297.     IF ¬ GENERATINGCFM THEN
  298.         Macro
  299.         _LongSecondsToDate
  300.             dc.w     $2F3C
  301.             dc.w     $8008
  302.             dc.w     $FFF0
  303.             dc.w     $A8B5
  304.         EndM
  305.     ELSE
  306.         IMPORT_CFM_FUNCTION    LongSecondsToDate
  307.     ENDIF
  308.  
  309. ;
  310. ; pascal ToggleResults ToggleDate(LongDateTime *lSecs, LongDateField field, DateDelta delta, short ch, const TogglePB *params)
  311. ;
  312.     IF ¬ GENERATINGCFM THEN
  313.         Macro
  314.         _ToggleDate
  315.             dc.w     $2F3C
  316.             dc.w     $820E
  317.             dc.w     $FFEE
  318.             dc.w     $A8B5
  319.         EndM
  320.     ELSE
  321.         IMPORT_CFM_FUNCTION    ToggleDate
  322.     ENDIF
  323.  
  324. ;
  325. ; pascal short ValidDate(const LongDateRec *vDate, long flags, LongDateTime *newSecs)
  326. ;
  327.     IF ¬ GENERATINGCFM THEN
  328.         Macro
  329.         _ValidDate
  330.             dc.w     $2F3C
  331.             dc.w     $820C
  332.             dc.w     $FFE4
  333.             dc.w     $A8B5
  334.         EndM
  335.     ELSE
  336.         IMPORT_CFM_FUNCTION    ValidDate
  337.     ENDIF
  338.  
  339. ;
  340. ; pascal Boolean IsMetric(void)
  341. ;
  342.     IF ¬ GENERATINGCFM THEN
  343.         Macro
  344.         _IsMetric
  345.             move.w    #$0004,-(sp)
  346.             dc.w     $A9ED
  347.         EndM
  348.     ELSE
  349.         IMPORT_CFM_FUNCTION    IsMetric
  350.     ENDIF
  351.  
  352. ;
  353. ; pascal SysPPtr GetSysPPtr(void)
  354. ;
  355.     IF ¬ GENERATINGCFM THEN
  356.         Macro
  357.         _GetSysPPtr
  358.             dc.w     $2EBC
  359.             dc.w     $0000
  360.             dc.w     $01F8
  361.         EndM
  362.     ELSE
  363.         IMPORT_CFM_FUNCTION    GetSysPPtr
  364.     ENDIF
  365.  
  366. ;
  367. ; pascal OSErr ReadDateTime(unsigned long *time)
  368. ;
  369.     IF ¬ GENERATINGCFM THEN
  370.         ; parameters: 
  371.         ;     time              => A0
  372.         ; returns: 
  373.         ;     OSErr             <= D0
  374.         _ReadDateTime:    OPWORD    $A039
  375.     ELSE
  376.         IMPORT_CFM_FUNCTION    ReadDateTime
  377.     ENDIF
  378.  
  379. ;
  380. ; pascal void GetDateTime(unsigned long *secs)
  381. ;
  382.     IF ¬ GENERATINGCFM THEN
  383.         ; parameters: 
  384.         ;     secs              => A0
  385.         Macro
  386.         _GetDateTime
  387.             dc.w     $20B8
  388.             dc.w     $020C
  389.         EndM
  390.     ELSE
  391.         IMPORT_CFM_FUNCTION    GetDateTime
  392.     ENDIF
  393.  
  394. ;
  395. ; pascal OSErr SetDateTime(unsigned long time)
  396. ;
  397.     IF ¬ GENERATINGCFM THEN
  398.         ; parameters: 
  399.         ;     time              => D0
  400.         ; returns: 
  401.         ;     OSErr             <= D0
  402.         _SetDateTime:    OPWORD    $A03A
  403.     ELSE
  404.         IMPORT_CFM_FUNCTION    SetDateTime
  405.     ENDIF
  406.  
  407. ;
  408. ; pascal void SetTime(const DateTimeRec *d)
  409. ;
  410.     IF ¬ GENERATINGCFM THEN
  411.         ; parameters: 
  412.         ;     d                 => A0
  413.         Macro
  414.         _SetTime
  415.             dc.w     $A9C7
  416.             dc.w     $A03A
  417.         EndM
  418.     ELSE
  419.         IMPORT_CFM_FUNCTION    SetTime
  420.     ENDIF
  421.  
  422. ;
  423. ; pascal void GetTime(DateTimeRec *d)
  424. ;
  425.     IF ¬ GENERATINGCFM THEN
  426.         ; parameters: 
  427.         ;     d                 => A0
  428.         Macro
  429.         _GetTime
  430.             dc.w     $2038
  431.             dc.w     $020C
  432.             dc.w     $A9C6
  433.         EndM
  434.     ELSE
  435.         IMPORT_CFM_FUNCTION    GetTime
  436.     ENDIF
  437.  
  438. ;
  439. ; pascal void DateToSeconds(const DateTimeRec *d, unsigned long *secs)
  440. ;
  441.     IF ¬ GENERATINGCFM THEN
  442.         _DateToSeconds:    OPWORD    $A9C7
  443.     ELSE
  444.         IMPORT_CFM_FUNCTION    DateToSeconds
  445.     ENDIF
  446.  
  447. ;
  448. ; pascal void SecondsToDate(unsigned long secs, DateTimeRec *d)
  449. ;
  450.     IF ¬ GENERATINGCFM THEN
  451.         ; parameters: 
  452.         ;     secs              => D0
  453.         ;     d                 => A0
  454.         _SecondsToDate:    OPWORD    $A9C6
  455.     ELSE
  456.         IMPORT_CFM_FUNCTION    SecondsToDate
  457.     ENDIF
  458.  
  459. ;
  460. ; pascal void SysBeep(short duration)
  461. ;
  462.     IF ¬ GENERATINGCFM THEN
  463.         _SysBeep:    OPWORD    $A9C8
  464.     ELSE
  465.         IMPORT_CFM_FUNCTION    SysBeep
  466.     ENDIF
  467.  
  468. ;
  469. ; pascal OSErr DTInstall(DeferredTaskPtr dtTaskPtr)
  470. ;
  471.     IF ¬ GENERATINGCFM THEN
  472.         ; parameters: 
  473.         ;     dtTaskPtr         => A0
  474.         ; returns: 
  475.         ;     OSErr             <= D0
  476.         _DTInstall:    OPWORD    $A082
  477.     ELSE
  478.         IMPORT_CFM_FUNCTION    DTInstall
  479.     ENDIF
  480.  
  481. ;
  482. ; pascal SInt8 GetMMUMode(void)
  483. ;
  484.     IF ¬ GENERATINGCFM THEN
  485.         Macro
  486.         _GetMMUMode         &dest=(sp)
  487.         move.b               $0CB2,&dest
  488.         EndM
  489.     ELSE
  490.         IMPORT_CFM_FUNCTION    GetMMUMode
  491.     ENDIF
  492.  
  493. ;
  494. ; pascal void SwapMMUMode(SInt8 *mode)
  495. ;
  496.     IF ¬ GENERATINGCFM THEN
  497.         ; parameters: 
  498.         ;     mode              => A0
  499.         Macro
  500.         _SwapMMUMode
  501.             dc.w     $1010
  502.             dc.w     $A05D
  503.             dc.w     $1080
  504.         EndM
  505.     ELSE
  506.         IMPORT_CFM_FUNCTION    SwapMMUMode
  507.     ENDIF
  508.  
  509.     IF SystemSixOrLater  THEN
  510. ;
  511. ; pascal OSErr SysEnvirons(short versionRequested, SysEnvRec *theWorld)
  512. ;
  513.     IF ¬ GENERATINGCFM THEN
  514.         ; parameters: 
  515.         ;     versionRequested    => D0
  516.         ;     theWorld          => A0
  517.         ; returns: 
  518.         ;     OSErr             <= D0
  519.         _SysEnvirons:    OPWORD    $A090
  520.     ELSE
  521.         IMPORT_CFM_FUNCTION    SysEnvirons
  522.     ENDIF
  523.  
  524.     ELSE
  525. ;
  526. ; pascal OSErr SysEnvirons(short versionRequested, SysEnvRec *theWorld)
  527. ;
  528.     IF GENERATINGCFM THEN
  529.         IMPORT_CFM_FUNCTION    SysEnvirons
  530.     ENDIF
  531.  
  532.     ENDIF
  533. ;
  534. ; pascal void Delay(long numTicks, long *finalTicks)
  535. ;
  536.     IF ¬ GENERATINGCFM THEN
  537.         _Delay:    OPWORD    $A03B
  538.     ELSE
  539.         IMPORT_CFM_FUNCTION    Delay
  540.     ENDIF
  541.  
  542.     IF ¬ GENERATINGCFM  THEN
  543. ;
  544. ; pascal UniversalProcPtr GetTrapAddress(short trapNum)
  545. ;
  546.     IF ¬ GENERATINGCFM THEN
  547.         _GetTrapAddress:    OPWORD    $A146
  548.     ELSE
  549.         IMPORT_CFM_FUNCTION    GetTrapAddress
  550.     ENDIF
  551.  
  552. ;
  553. ; pascal void SetTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  554. ;
  555.     IF ¬ GENERATINGCFM THEN
  556.         _SetTrapAddress:    OPWORD    $A047
  557.     ELSE
  558.         IMPORT_CFM_FUNCTION    SetTrapAddress
  559.     ENDIF
  560.  
  561.     ENDIF
  562. ;
  563. ; pascal UniversalProcPtr GetOSTrapAddress(short trapNum)
  564. ;
  565.     IF ¬ GENERATINGCFM THEN
  566.         ; parameters: 
  567.         ;     trapNum           => D0
  568.         ; returns: 
  569.         ;     UniversalProcPtr    <= A0
  570.         _GetOSTrapAddress:    OPWORD    $A346
  571.     ELSE
  572.         IMPORT_CFM_FUNCTION    GetOSTrapAddress
  573.     ENDIF
  574.  
  575. ;
  576. ; pascal void SetOSTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  577. ;
  578.     IF ¬ GENERATINGCFM THEN
  579.         ; parameters: 
  580.         ;     trapAddr          => A0
  581.         ;     trapNum           => D0
  582.         _SetOSTrapAddress:    OPWORD    $A247
  583.     ELSE
  584.         IMPORT_CFM_FUNCTION    SetOSTrapAddress
  585.     ENDIF
  586.  
  587. ;
  588. ; pascal UniversalProcPtr GetToolTrapAddress(short trapNum)
  589. ;
  590.     IF ¬ GENERATINGCFM THEN
  591.         ; parameters: 
  592.         ;     trapNum           => D0
  593.         ; returns: 
  594.         ;     UniversalProcPtr    <= A0
  595.         _GetToolTrapAddress:    OPWORD    $A746
  596.     ELSE
  597.         IMPORT_CFM_FUNCTION    GetToolTrapAddress
  598.     ENDIF
  599.  
  600. ;
  601. ; pascal void SetToolTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  602. ;
  603.     IF ¬ GENERATINGCFM THEN
  604.         ; parameters: 
  605.         ;     trapAddr          => A0
  606.         ;     trapNum           => D0
  607.         _SetToolTrapAddress:    OPWORD    $A647
  608.     ELSE
  609.         IMPORT_CFM_FUNCTION    SetToolTrapAddress
  610.     ENDIF
  611.  
  612. ;
  613. ; pascal UniversalProcPtr GetToolboxTrapAddress(short trapNum)
  614. ;
  615.     IF ¬ GENERATINGCFM THEN
  616.         ; parameters: 
  617.         ;     trapNum           => D0
  618.         ; returns: 
  619.         ;     UniversalProcPtr    <= A0
  620.         _GetToolboxTrapAddress:    OPWORD    $A746
  621.     ELSE
  622.         IMPORT_CFM_FUNCTION    GetToolboxTrapAddress
  623.     ENDIF
  624.  
  625. ;
  626. ; pascal void SetToolboxTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  627. ;
  628.     IF ¬ GENERATINGCFM THEN
  629.         ; parameters: 
  630.         ;     trapAddr          => A0
  631.         ;     trapNum           => D0
  632.         _SetToolboxTrapAddress:    OPWORD    $A647
  633.     ELSE
  634.         IMPORT_CFM_FUNCTION    SetToolboxTrapAddress
  635.     ENDIF
  636.  
  637. ;
  638. ; pascal OSErr WriteParam(void)
  639. ;
  640.     IF ¬ GENERATINGCFM THEN
  641.         _WriteParam:    OPWORD    $A038
  642.     ELSE
  643.         IMPORT_CFM_FUNCTION    WriteParam
  644.     ENDIF
  645.  
  646. ;
  647. ; pascal void Enqueue(QElemPtr qElement, QHdrPtr qHeader)
  648. ;
  649.     IF ¬ GENERATINGCFM THEN
  650.         ; parameters: 
  651.         ;     qElement          => A0
  652.         ;     qHeader           => A1
  653.         _Enqueue:    OPWORD    $A96F
  654.     ELSE
  655.         IMPORT_CFM_FUNCTION    Enqueue
  656.     ENDIF
  657.  
  658. ;
  659. ; pascal OSErr Dequeue(QElemPtr qElement, QHdrPtr qHeader)
  660. ;
  661.     IF ¬ GENERATINGCFM THEN
  662.         ; parameters: 
  663.         ;     qElement          => A0
  664.         ;     qHeader           => A1
  665.         ; returns: 
  666.         ;     OSErr             <= D0
  667.         _Dequeue:    OPWORD    $A96E
  668.     ELSE
  669.         IMPORT_CFM_FUNCTION    Dequeue
  670.     ENDIF
  671.  
  672.     IF ¬ SystemSevenOrLater  THEN
  673. ;
  674. ; pascal void Environs(short *rom, short *machine)
  675. ;
  676.     IF GENERATINGCFM THEN
  677.         IMPORT_CFM_FUNCTION    Environs
  678.     ENDIF
  679.  
  680.     ENDIF
  681. ;
  682. ; pascal OSErr InitUtil(void)
  683. ;
  684.     IF ¬ GENERATINGCFM THEN
  685.         ; returns: 
  686.         ;     OSErr             <= D0
  687.         _InitUtil:    OPWORD    $A03F
  688.     ELSE
  689.         IMPORT_CFM_FUNCTION    InitUtil
  690.     ENDIF
  691.  
  692.     IF GENERATINGPOWERPC  THEN
  693. ;
  694. ; pascal void MakeDataExecutable(void *baseAddress, unsigned long length)
  695. ;
  696.     IF GENERATINGCFM THEN
  697.         IMPORT_CFM_FUNCTION    MakeDataExecutable
  698.     ENDIF
  699.  
  700.     ENDIF
  701.     IF GENERATING68K  THEN
  702. ;
  703. ; pascal Boolean SwapInstructionCache(Boolean cacheEnable)
  704. ;
  705.     IF ¬ GENERATINGCFM THEN
  706.         Macro
  707.         _SwapInstructionCache
  708.             moveq    #0,d0
  709.             dc.w     $A098
  710.         EndM
  711.     ELSE
  712.         IMPORT_CFM_FUNCTION    SwapInstructionCache
  713.     ENDIF
  714.  
  715. ;
  716. ; pascal void FlushInstructionCache(void)
  717. ;
  718.     IF ¬ GENERATINGCFM THEN
  719.         Macro
  720.         _FlushInstructionCache
  721.             moveq    #1,d0
  722.             dc.w     $A098
  723.         EndM
  724.     ELSE
  725.         IMPORT_CFM_FUNCTION    FlushInstructionCache
  726.     ENDIF
  727.  
  728. ;
  729. ; pascal Boolean SwapDataCache(Boolean cacheEnable)
  730. ;
  731.     IF ¬ GENERATINGCFM THEN
  732.         Macro
  733.         _SwapDataCache
  734.             moveq    #2,d0
  735.             dc.w     $A098
  736.         EndM
  737.     ELSE
  738.         IMPORT_CFM_FUNCTION    SwapDataCache
  739.     ENDIF
  740.  
  741. ;
  742. ; pascal void FlushDataCache(void)
  743. ;
  744.     IF ¬ GENERATINGCFM THEN
  745.         Macro
  746.         _FlushDataCache
  747.             moveq    #3,d0
  748.             dc.w     $A098
  749.         EndM
  750.     ELSE
  751.         IMPORT_CFM_FUNCTION    FlushDataCache
  752.     ENDIF
  753.  
  754. ;
  755. ; pascal void FlushCodeCache(void)
  756. ;
  757.     IF ¬ GENERATINGCFM THEN
  758.         _FlushCodeCache:    OPWORD    $A0BD
  759.     ELSE
  760.         IMPORT_CFM_FUNCTION    FlushCodeCache
  761.     ENDIF
  762.  
  763. ;
  764. ; pascal void FlushCodeCacheRange(void *address, unsigned long count)
  765. ;
  766.     IF ¬ GENERATINGCFM THEN
  767.         ; parameters: 
  768.         ;     address           => A0
  769.         ;     count             => A1
  770.         Macro
  771.         _FlushCodeCacheRange
  772.             moveq    #9,d0
  773.             dc.w     $A098
  774.         EndM
  775.     ELSE
  776.         IMPORT_CFM_FUNCTION    FlushCodeCacheRange
  777.     ENDIF
  778.  
  779. ;
  780. ; pascal void FlushExternalCache(void)
  781. ;
  782.     IF ¬ GENERATINGCFM THEN
  783.         Macro
  784.         _FlushExternalCache
  785.             moveq    #6,d0
  786.             dc.w     $A098
  787.         EndM
  788.     ELSE
  789.         IMPORT_CFM_FUNCTION    FlushExternalCache
  790.     ENDIF
  791.  
  792.     ENDIF
  793. ;
  794. ; pascal void ReadLocation(MachineLocation *loc)
  795. ;
  796.     IF ¬ GENERATINGCFM THEN
  797.         ; parameters: 
  798.         ;     loc               => A0
  799.         Macro
  800.         _ReadLocation
  801.             dc.w     $203C
  802.             dc.w     $000C
  803.             dc.w     $00E4
  804.             dc.w     $A051
  805.         EndM
  806.     ELSE
  807.         IMPORT_CFM_FUNCTION    ReadLocation
  808.     ENDIF
  809.  
  810. ;
  811. ; pascal void WriteLocation(const MachineLocation *loc)
  812. ;
  813.     IF ¬ GENERATINGCFM THEN
  814.         ; parameters: 
  815.         ;     loc               => A0
  816.         Macro
  817.         _WriteLocation
  818.             dc.w     $203C
  819.             dc.w     $000C
  820.             dc.w     $00E4
  821.             dc.w     $A052
  822.         EndM
  823.     ELSE
  824.         IMPORT_CFM_FUNCTION    WriteLocation
  825.     ENDIF
  826.  
  827.     IF OLDROUTINENAMES  THEN
  828.     ENDIF
  829.     ENDIF ; __OSUTILS__
  830.